"""
循环输入10个人的信息（姓名，年龄，性别，身高），并存储到数据库中
"""
import pymysql

db_config = {
    'host': 'localhost',
    'user': 'root',
    'password': '123456',
    'database': 'bjhr_test',
    'charset': 'utf8mb4'
}
# 连接数据库
connection = pymysql.Connection(**db_config)
cursor = connection.cursor()

try:
    # 循环输入10个人的信息
    for i in range(10):
        print("请输入第{}个人的信息：".format(i + 1))
        username = input("姓名: ").strip()

        # 验证年龄输入
        while True:
            try:
                age = int(input("年龄:"))
                if age <= 0:
                    print("年龄必须大于0，请重新输入")
                    continue
                break
            except ValueError:
                print("年龄输入无效，请输入一个整数")

        # 验证性别输入
        while True:
            sex = input("性别 (男/女): ").strip()
            if sex in ['男', '女']:
                break
            print("性别输入无效，请输入 '男' 或 '女'")

        # 验证身高输入
        while True:
            try:
                height = float(input("身高 (米): "))
                if height <= 0:
                    print("身高必须大于0，请重新输入")
                    continue
                break
            except ValueError:
                print("身高输入无效，请输入一个数字")

        # 插入数据到数据库
        sql = "insert into person (username, age, sex, high) values (%s, %s, %s, %s)"
        cursor.execute(sql, (username, age, sex, round(height, 2)))

    # 提交事务
    connection.commit()
    print("数据已成功插入到数据库。")
except pymysql.MySQLError as e:
    print("数据库连接错误:", e)
finally:
    # 关闭数据库连接
    if 'cursor' in locals():
        cursor.close()
    if 'connection' in locals():
        connection.close()
    print("数据库连接已关闭。")
